interface Constants {
                                           
    final static byte FP                        = 16;

    final String DatResourceURL                 = "${resource.dat.path}";
    final String BinResourceURL                 = "${resource.bin.path}";

    final static byte UPDATING_TASK_INDEX       = 0;
    final static byte MOVING_TASK_INDEX         = 1;

    final static byte GS_LOGO                   = 0;
    final static byte GS_SPLASH                 = 1;
    final static byte GS_MENU                   = 2;
    final static byte GS_GAME                   = 3;
    final static byte GS_EXIT                   = 4;
    final static byte GS_SELECTSHIP             = 5;
    final static byte GS_INTERNET               = 6;
    final static byte GS_SHOW_LEVEL_SCORES      = 7;
    final static byte GS_SHOW_TOTAL_SCORES      = 8;
    final static byte GS_GAME_FINISHED          = 9;
    final static byte GS_SET_SCREEN             = 10;
    final static byte GS_EDITOR                 = 11;
    final static byte GS_ABOUT                  = 12;
    final static byte GS_TOTAL_SCORES           = 13;

    final static byte GSS_GAME_BONUS_TIME       = 0;
    final static byte GSS_GAME_READY            = 1;
    final static byte GSS_GAME_PLAY             = 2;
    final static byte GSS_GAME_PAUSE            = 3;
    final static byte GSS_GAME_OPTIONS          = 4;
    final static byte GSS_GAME_SOUND            = 6;
    final static byte GSS_GAME_FINISHED         = 7;
   
    final static byte RS_READY                  = 0;
    final static byte RS_MOVE                   = 1;
    final static byte RS_STOP                   = 2;

    final static byte ESS_ENTER_NAME            = 0;
    final static byte ESS_EDIT_NAME             = 1;

    //#if SOUND_NOKIA_RT || SOUND_MMAPI || SAMSUNG_MMF || SHARP_MMF
        final static byte SOUND_BGMUSIC         = 0;    // bgmusic.mid
        final static byte SOUND_GO              = 1;    // go.mid
        final static byte SOUND_LASER           = 2;    // laser.mid
        final static byte SOUND_ROCKET          = 3;    // rocket.mid
        final static byte SOUND_MINE            = 4;    // mine.mid
        final static byte SOUND_BIG_EXPLOSION   = 5;    // b_explosion.mid
        final static byte SOUND_SMALL_EXPLOSION = 6;    // s_explosion.mid
        final static byte SOUND_FIRST_PLACE     = 7;    // first_place.mid
        final static byte SOUND_GAME_OVER       = 8;    // game_over.mid
        final static byte SOUND_BONUS_GEM       = 9;    // bonus.mid
        final static byte SOUND_END_GAME        = 10;   // end_game.mid
        final static byte SOUND_COUNT           = 11;
    //#endif

    //#if SOUND_NOKIA_RT
        final static byte SS_STOPED             = 0;
        final static byte SS_PLAYING            = 1;
        final static byte SS_PAUSED             = 2;

        final static int DURATION_ONCE          = 1;
        final static int DURATION_LOOP          = 0;
    //#elif SOUND_MMAPI
        final static byte SS_NOT_LOADED         = 0;
        final static byte SS_PREFETCHED         = 1;
        final static byte SS_STARTED            = 2;
        final static byte SS_CLOSED             = 3;
        final static byte SS_REALIZED           = 4;
        final static byte SS_UNREALIZED         = 5;
      
        final static int DURATION_ONCE          = 1;
        final static int DURATION_LOOP          = -1;
    //#elif SAMSUNG_MMF
        final static int DURATION_ONCE          = 1;
        final static int DURATION_LOOP          = 255;
    //#elif SHARP_MMF
        final static int DURATION_ONCE          = 1;
        final static int DURATION_LOOP          = 0;
    //#endif

    final static byte STR_MENU_MAIN             = 0;
    final static byte STR_MENU_OPTIONS          = 1;
    final static byte STR_MENU_INGAME_OPTIONS   = 2;
    final static byte STR_MENU_EXIT             = 3;
    final static byte STR_MENU_CONTROL          = 4;
    final static byte STR_MENU_PAUSE            = 5;
    final static byte STR_MENU_REPLAY           = 6;
    final static byte STR_MENU_SELECTSHIP       = 7;
    final static byte STR_READY                 = 8;
    final static byte STR_GO                    = 9;
    final static byte STR_MENU_DL_GROUP         = 10;
    final static byte STR_GROUPS_TITLE          = 11;
    final static byte STR_BACK                  = 12;
    final static byte STR_BONUS_MESSAGE         = 13;
    final static byte STR_ERROR                 = 14;
    final static byte STR_MENU_RETRY            = 15;
    final static byte STR_SCORES                = 16;
    final static byte STR_TITLE_HISCORES        = 17;
    final static byte STR_TITLE_TOP10           = 18;
    final static byte STR_TITLE_NORECORDS       = 19;
    final static byte STR_MENU_UL_TOTAL_SCORES  = 20;
    final static byte STR_ABOUT                 = 21;
    final static byte STR_CONNECTING            = 22;
    final static byte STR_LEVELS_DL_ERROR       = 23;
    final static byte STR_UPDATING              = 24;
    final static byte STR_UPDATE_OK             = 25;
    final static byte STR_UPDATE_IS_UP_TO_DATE  = 26;
    final static byte STR_LOADING               = 27;
    final static byte STR_UPDATE_FAILED         = 28;
    final static byte STR_FIRST_RUNING          = 29;
    final static byte STR_EDITOR_SAVE           = 30;
    final static byte STR_EDITOR_CLEAR          = 31;
    final static byte STR_SHIP_1_DESCRIPTION    = 32;
    final static byte STR_SHIP_2_DESCRIPTION    = 33;
    final static byte STR_WINER_TEXT            = 34;
    final static byte STR_PLACE                 = 35;
    final static byte STR_TIME                  = 36;
    final static byte STR_SCORE                 = 37;
    final static byte STR_BONUS                 = 38;
    final static byte STR_RESULT                = 39;
    final static byte STR_LEVEL_STATISTICS      = 40;
    final static byte STR_TOTAL_STATISTICS      = 41;

    final static byte STR_KEY_1                 = 42;
    final static byte STR_KEY_2                 = 43;
    final static byte STR_KEY_3                 = 44;
    final static byte STR_KEY_4                 = 45;
    final static byte STR_KEY_5                 = 46;
    final static byte STR_KEY_6                 = 47;
    final static byte STR_KEY_7                 = 48;
    final static byte STR_KEY_8                 = 49;
    final static byte STR_KEY_9                 = 50;
    final static byte STR_KEY_0                 = 51;
    final static byte STR_KEY_PLUS              = 52;
    final static byte STR_KEY_POUND             = 53;
    final static byte STR_KEY_UP                = 54;
    final static byte STR_KEY_DOWN              = 55;
    final static byte STR_KEY_LEFT              = 56;
    final static byte STR_KEY_RIGHT             = 57;
    final static byte STR_KEY_FIRE              = 58;
    final static byte STR_KEY_SOFT1             = 59;
    final static byte STR_KEY_SOFT2             = 60;
    final static byte STR_KEY_CLEAR             = 61;
    final static byte STR_MENU_SELECT_KEY       = 62;
    final static byte STR_KEY_USED              = 63;
    final static byte STR_KEY_SELECTED          = 64;
    final static byte STR_FIRST_PLACE           = 65;
    final static byte STR_SECOND_PLACE          = 66;
    final static byte STR_THIRD_PLACE           = 67;
    final static byte STR_EDITOR_HINT           = 68;
    final static byte STR_NEXT_TRACK            = 69;
    final static byte STR_END_RACE              = 70;
    final static byte STR_GAME_OVER             = 71;
    final static byte STR_CHEAT                 = 72;
    final static byte STR_MENU_SOUND            = 73;
    final static byte STR_MENU_SOUND_STARTUP    = 74;
    final static byte STR_SELECT                = 75;
    final static byte STR_PAUSE                 = 76;

    final static byte STR_MENU_GROUPS           = 77;
    final static byte STR_MENU_JAR_LEVELS       = 78;
    final static byte STR_MENU_RMS_LEVELS       = 79;
         
    final static byte STR_COUNT                 = 80; // total number of strings

    // This array contains an accordance with text for menu states
    final static byte MENU_STR[] =  {
                                        STR_MENU_MAIN,
                                        STR_MENU_OPTIONS,
                                        STR_MENU_INGAME_OPTIONS,
                                        STR_MENU_EXIT,
                                        STR_MENU_CONTROL,
                                        STR_MENU_PAUSE,
                                        STR_MENU_REPLAY,
                                        STR_MENU_SELECTSHIP,
                                        STR_MENU_DL_GROUP,
                                        STR_MENU_UL_TOTAL_SCORES,
                                        STR_MENU_RETRY,
                                        STR_MENU_GROUPS,
                                        STR_MENU_JAR_LEVELS,
                                        STR_MENU_RMS_LEVELS,
                                        STR_MENU_SELECT_KEY,
                                        STR_MENU_SOUND,
                                        STR_MENU_SOUND_STARTUP,
                                    };

    // This array contains an accordance with text for text
    final static byte INTRO_STR[] = {
                                        STR_ERROR,
                                        STR_ABOUT,
                                        STR_CONNECTING,
                                        STR_LEVELS_DL_ERROR,
                                        STR_UPDATING,
                                        STR_UPDATE_OK,
                                        STR_UPDATE_IS_UP_TO_DATE,
                                        STR_LOADING,
                                        STR_UPDATE_FAILED,
                                        STR_FIRST_RUNING,
                                        STR_SHIP_1_DESCRIPTION,
                                        STR_SHIP_2_DESCRIPTION,
                                        STR_WINER_TEXT,
                                        STR_PLACE,
                                        STR_KEY_USED,
                                        STR_KEY_SELECTED,
                                        STR_SCORES,
                                        STR_EDITOR_HINT,
                                        STR_GAME_OVER,
                                        STR_CHEAT,
                                    };

    // This array contains an accordance with text for text
    final static byte GAME_STR[] =  {
                                        STR_READY,
                                        STR_GO,
                                        STR_BONUS_MESSAGE,
                                        STR_FIRST_PLACE,
                                        STR_SECOND_PLACE,
                                        STR_THIRD_PLACE,
                                        STR_CHEAT,
                                    };

    final static byte GSS_INTERNET_DLLEVELS         = 0;
    final static byte GSS_INTERNET_DL_UPDATE        = 1;
    final static byte GSS_INTERNET_UL_LEVEL_SCORES  = 2;
    final static byte GSS_INTERNET_DL_LEVEL_SCORES  = 3;
    final static byte GSS_INTERNET_UL_TOTAL_SCORES  = 4;
    final static byte GSS_INTERNET_DL_TOTAL_SCORES  = 5;

    final static byte GSS_MENU_MAIN             = 0;
    final static byte GSS_MENU_OPTIONS          = 1;
    final static byte GSS_MENU_INGAME_OPTIONS   = 2;
    final static byte GSS_MENU_EXIT             = 3;
    final static byte GSS_MENU_CONTROL          = 4;
    final static byte GSS_MENU_PAUSE            = 5;
    final static byte GSS_MENU_REPLAY           = 6;
    final static byte GSS_MENU_SELECTSHIP       = 7;
    final static byte GSS_MENU_DL_GROUP         = 8;
    final static byte GSS_MENU_UL_TOTAL_SCORES  = 9;
    final static byte GSS_MENU_TOTAL_RETRY      = 10;
    final static byte GSS_MENU_GROUPS           = 11;
    final static byte GSS_MENU_JAR_LEVELS       = 12;
    final static byte GSS_MENU_RMS_LEVELS       = 13;
    final static byte GSS_MENU_SELECT_KEY       = 14;
    //#if SOUND_NOKIA_RT || SOUND_MMAPI || SAMSUNG_MMF || SHARP_MMF
        final static byte GSS_MENU_SOUND           = 15;
        final static byte GSS_MENU_SOUND_STARTUP   = 16;
    //#endif
   
    final static byte INTRO_MENUS[] = {
                                        GSS_MENU_MAIN,
                                        GSS_MENU_OPTIONS,
                                        GSS_MENU_EXIT,
                                        GSS_MENU_CONTROL,
                                        GSS_MENU_SELECTSHIP,
                                        GSS_MENU_GROUPS,
                                        GSS_MENU_JAR_LEVELS,
                                        GSS_MENU_RMS_LEVELS,
                                        GSS_MENU_DL_GROUP,
                                        GSS_MENU_UL_TOTAL_SCORES,
                                        GSS_MENU_TOTAL_RETRY,
                                        GSS_MENU_SELECT_KEY,
                                        //#if SOUND_NOKIA_RT || SOUND_MMAPI || SAMSUNG_MMF || SHARP_MMF
                                           GSS_MENU_SOUND,
                                           GSS_MENU_SOUND_STARTUP,
                                        //#endif
                                     };

   final static byte GAME_MENUS[] = {
                                       GSS_MENU_PAUSE,
                                       GSS_MENU_REPLAY,
                                       //#if SOUND_NOKIA_RT || SOUND_MMAPI || SAMSUNG_MMF || SHARP_MMF
                                       GSS_MENU_INGAME_OPTIONS,
                                       GSS_MENU_SOUND,
                                       //#endif
                                    };

    final static int UI_LogoBGColor             = 0xffffff;
    final static int UI_BGColor                 = 0x000000;
    final static int UI_MenuBGColor             = 0x662567;
    final static int UI_MenuCursorColor         = 0xC175BD;
    final static int UI_MenuHeaderColor         = 0x230324;
    final static int UI_MenuBorder              = 0xC9C9C9;
    final static int UI_PassedMenuBGColor       = 0x005500;
    final static int UI_PassedMenuCursorColor   = 0x00aa00;
    final static int UI_ClosedMenuBGColor       = 0x550000;
    final static int UI_ClosedMenuCursorColor   = 0xaa0000;
    final static int UI_TextBGColor             = 0x000055;
    final static int UI_LineColor0              = 0x434343;
    final static int UI_LineColor1              = 0x2D2D2D;

    // 0 - qualified, 1 - not qualified
    final static int UI_RESULT_BG_0             = 0x81A66C;
    final static int UI_RESULT_BG_1             = 0xA6946C;

    final static int UI_RESULT_1_0              = 0xEDF2EA;
    final static int UI_RESULT_1_1              = 0xF2F0EA;

    final static int UI_RESULT_2_0              = 0xB1C8A4;
    final static int UI_RESULT_2_1              = 0xA6946C;

   
    final String RMS_GROUP_INF      = "groups";
    final String RMS_SETTINGS       = "settings";
    final String RMS_LEVELS_INF     = "levels";
    final String RMS_LEVELS_SPECS   = "specs";
    final String RMS_LEVELS_BIN     = "bin";
    final String RMS_USER           = "user";
    final String RMS_CONTROL        = "control";

    //#if sp
        final String RMS_TOP10      = "top10";
    //#endif

    final static byte SETTINGS_DL_INF       = 0;
    final static byte SETTINGS_DL_SPECS     = 1;
    final static byte SETTINGS_DL_BIN       = 2;
    final static byte SETTINGS_GROUP        = 3;
    final static byte SETTINGS_LEVEL        = 4;
    final static byte SETTINGS_COUNT_LEVELS = 5;
    final static byte SETTINGS_SOUND        = 6;

    final static byte LR_NONE      = 0;
    final static byte LR_QUALIFIED = 1;
    final static byte LR_FAILED    = 2;

    final static byte LEFT_TO_RIGHT = 0;
    final static byte RIGHT_TO_LEFT = 1;
    //#include ${file.src.include.constants}
    //#endinclude

    final static byte CS_NOT_CONNECTED = 0;
    final static byte CS_ERROR         = 1;
    final static byte CS_CONNECTED     = 3;
    final static byte CS_SUCCESSFUL    = 4;

    final static int HTTP_OK = 200;

    final static byte MODE_UL_TOTAL_SCORES = 0;
    final static byte MODE_DL_TOTAL_SCORES = 1;

    final static byte STATE_KEY    = 0;
    final static byte STATE_LENGTH = 1;
    final static byte STATE_VALUE  = 2;

    final static byte USER_NAME = 0;
    final static byte USER_ID   = 1;

    final static int HISCORES_COUNT = 10;
    final static byte GAME_SESSION_LENGTH = 32;

    final static byte GROUP_HASH_LENGTH = 16;

    final char[][] EDITOR_NAME_CHARS = {
                                        {' ', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'},
                                        {'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q'},
                                        {'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'},
                                        {'1', '2', '3', '4', '5', '6', '7', '8', '9'},
                                        {'0', '.', ',', '-', ':', '!', '"', '^', '$'}
                                       };
    final static byte EDITOR_NAME_LENGTH = 5;

    final static byte TEXT_LEFT = 0;
    final static byte TEXT_CENTER = 1;

    final static byte TEXT_BG_CLEAR = 0;
    final static byte TEXT_BORDER   = 1;

    final static byte BONUS_SCORES_PER_SECONDS = 100;

    /**************************************************************************************************/
    //** SHIP'S CONSTANTS                                                                             */
    /**************************************************************************************************/

    final static byte SHIP_PLAYER_0 = 0;
    final static byte SHIP_PLAYER_1 = 1;
    final static byte SHIP_PLAYER_2 = 2;
    final static byte SHIP_NPC_0    = 3;
    final static byte SHIP_NPC_1    = 4;

    final static byte[] PLAYER_SHIPS = {SHIP_PLAYER_0, SHIP_PLAYER_1};
    final static byte[] PLAYER_SHIPS_DESCRIPTION = {STR_SHIP_1_DESCRIPTION, STR_SHIP_2_DESCRIPTION};

    final static byte OBSTACLE_NONE  = 0;
    final static byte OBSTACLE_EDGE  = 1;
    final static byte OBSTACLE_WALL  = 2;
   
    final static byte SHIP_PLAYER = 0;
    final static byte SHIP_NPC    = 1;

    final static byte SHIP_LEFT_SIDE  = 0;
    final static byte SHIP_RIGHT_SIDE = 1;

    final static byte SHIP_TS = 3;
   
    final static byte SHIP_MAX_ANGLE = 45;
   
    final static byte DIRECTION_LEFT     = -1;
    final static byte DIRECTION_STRAIGHT =  0;
    final static byte DIRECTION_RIGHT    =  1;
   
    final static int SHIP_ANGLE_STEP = 2;
   
    final static byte SHIP_TURNSTATE_FREE = 0;
    final static byte SHIP_TURNSTATE_MOVE = 1;
    final static byte SHIP_TURNSTATE_HITS = 2;

    final static byte ITEM_NONE    = 0;
    final static byte ITEM_POWERUP = 1;
    final static byte ITEM_WEAPON  = 2;
    final static byte ITEM_MAX_COUNT = 3;

    final static byte SPECIALITEM_SHIELD = 0;
    final static byte SPECIALITEM_NITRO  = 1;
    final static byte SPECIALITEM_KILLER = 2;
    final static short SPECIALITEM_SHIELD_TIME = 10000;
    final static short SPECIALITEM_NITRO_TIME = 1000;
    final static short SPECIALITEM_KILLER_TIME = 30000;

    final static byte WEAPON_NONE   = -1;
    final static byte WEAPON_LASER  = 0;
    final static byte WEAPON_ROCKET = 1;
    final static byte WEAPON_BOMB   = 2;
    final static byte WEAPON_MINE   = 3;

    final byte[] WEAPON_DAMAGE = {-5, -30, -50, -50};
    final byte[] WEAPON_POWER = {30, 50, 70, 90};
    final byte[] WEAPON_DECREASE_STEP = {5, 50, 70, 100};
    final byte[] WEAPON_IMG = {F_ICON_LASER, F_ICON_ROCKET, F_ICON_BOMB, F_ICON_MINE};

    final static byte SHIP_STATE_READY     = 0;
    final static byte SHIP_STATE_MOVE      = 1;
    final static byte SHIP_STATE_STOP      = 2;
    final static byte SHIP_STATE_DESTROYED = 3;
    final static byte SHIP_STATE_FINISH    = 4;
    final static byte SHIP_STATE_REINIT    = 5;

    final static byte SHIP_MODE_FLY  = 0;
    final static byte SHIP_MODE_JUMP = 1;

    final static byte ANIMATION_PLAY_REPEAT = 0;
    final static byte ANIMATION_PLAY_ONCE   = 1;

    final static byte[] SHIP_IMAGES = {IMG_SHIP_3, IMG_SHIP_0, -1, IMG_SHIP_1, IMG_SHIP_2};
    final static byte[] SHIP_SHAPES = {SHAPE_SHIP_3, SHAPE_SHIP_0, -1, SHAPE_SHIP_1, SHAPE_SHIP_2};

    final static byte[][] SHIP_FREE_ANIMATIONS = {
                                                    {A_SHIP_3_FREE_LEFT, A_SHIP_3_FREE_STRAIGHT, A_SHIP_3_FREE_RIGHT},
                                                    {A_SHIP_0_FREE_LEFT, A_SHIP_0_FREE_STRAIGHT, A_SHIP_0_FREE_RIGHT},
                                                    {},
                                                    {A_SHIP_1_FREE_LEFT, A_SHIP_1_FREE_STRAIGHT, A_SHIP_1_FREE_RIGHT},
                                                    {A_SHIP_2_FREE_LEFT, A_SHIP_2_FREE_STRAIGHT, A_SHIP_2_FREE_RIGHT},
                                                 };

    final static byte[][] SHIP_ANIMATIONS = {
                                                {A_SHIP_3_MOVE_LEFT, A_SHIP_3_MOVE_STRAIGHT, A_SHIP_3_MOVE_RIGHT},
                                                {A_SHIP_0_MOVE_LEFT, A_SHIP_0_MOVE_STRAIGHT, A_SHIP_0_MOVE_RIGHT},
                                                {},
                                                {A_SHIP_1_MOVE_LEFT, A_SHIP_1_MOVE_STRAIGHT, A_SHIP_1_MOVE_RIGHT},
                                                {A_SHIP_2_MOVE_LEFT, A_SHIP_2_MOVE_STRAIGHT, A_SHIP_2_MOVE_RIGHT},
                                            };

    final static byte[][] SHIP_JUMP_ANIMATIONS = {
                                                    {A_SHIP_3_JUMP_LEFT, A_SHIP_3_JUMP_STRAIGHT, A_SHIP_3_JUMP_RIGHT},
                                                    {A_SHIP_0_JUMP_LEFT, A_SHIP_0_JUMP_STRAIGHT, A_SHIP_0_JUMP_RIGHT},
                                                    {},
                                                    {A_SHIP_1_JUMP_LEFT, A_SHIP_1_JUMP_STRAIGHT, A_SHIP_1_JUMP_RIGHT},
                                                    {A_SHIP_2_JUMP_LEFT, A_SHIP_2_JUMP_STRAIGHT, A_SHIP_2_JUMP_RIGHT},
                                                 };

    final static byte[][] SHIP_NITRO_ANIMATIONS = {
                                                    {A_SHIP_3_NITRO_LEFT, A_SHIP_3_NITRO_STRAIGHT, A_SHIP_3_NITRO_RIGHT},
                                                    {A_SHIP_0_NITRO_LEFT, A_SHIP_0_NITRO_STRAIGHT, A_SHIP_0_NITRO_RIGHT},
                                                    {},
                                                    {A_SHIP_1_NITRO_LEFT, A_SHIP_1_NITRO_STRAIGHT, A_SHIP_1_NITRO_RIGHT},
                                                    {A_SHIP_2_NITRO_LEFT, A_SHIP_2_NITRO_STRAIGHT, A_SHIP_2_NITRO_RIGHT},
                                                  };

    final static short[] SHIP_HEALTH = {100, 120, 130, 80,  130};

    final static byte SHIP_CRITICAL_HEALTH  = 30;
    final static byte SHIP_RADAR_DISTANCE   = 120;
    final static byte SHIP_DISTANCE         = 50;
    final static byte EXPLOSION_AREA        = 50;

    final static int[] MAIN_ENGINE_MAX_POWER = {8000, 9000, 0, 5000, 6000};
    final static int[] FORCES_BRAKE_ENGINE = {1500, 1500, 1, 3000, 2000};
    final int[] MASS = {5, 10, 0, 5, 10};

    final static byte C_RES = 1;
    final static long C_HIT_DAMAGE = GameScreen.fpDiv(GameScreen.fpToFP(2), GameScreen.fpToFP(100));
    final static long F_NITRO = GameScreen.fpToFP(10000);

    final static short SHIP_POWER_COUNT_STEPS = 300;
    final static short NPC_NITRO_DISCTANCE = 300;

    final static byte NPC_INDIFFERENT = 0;
    final static byte NPC_AGRESSIVE   = 1;
    final static byte NPC_WARY        = 2;

    final static byte LOCATION_NONE          = -1;
    final static byte LOCATION_TOP_LEFT      = 0;
    final static byte LOCATION_TOP_CENTER    = 1;
    final static byte LOCATION_TOP_RIGHT     = 2;
    final static byte LOCATION_MIDDLE_LEFT   = 3;
    final static byte LOCATION_MIDDLE_RIGHT  = 4;
    final static byte LOCATION_BOTTOM_LEFT   = 5;
    final static byte LOCATION_BOTTOM_CENTER = 6;
    final static byte LOCATION_BOTTOM_RIGHT  = 7;

    final static byte EXPLOSION_STATE_FINISHED = 0;
    final static byte EXPLOSION_STATE_ACTIVE   = 1;
   
    static final byte LASER_HIT_NONE = 0;
    static final byte LASER_HIT_EDGE = 1;
    static final byte LASER_HIT_ITEM = 2;
    static final byte LASER_HIT_SHIP = 3;

    /**************************************************************************************************/
    /** TRACK"S CONSTANTS                                                                             */
    /**************************************************************************************************/

    final static byte BORDER_TRACKEDGE  = 0;
    final static byte BORDER_WALL       = 1;
    final static byte BORDER_JUMP       = 2;

    final static int SL_COUNTTILES      = 2;
    final static int FL_COUNTTILES      = 2;

    /**************************************************************************************************/
    final static int[] BIN_SPECS = {
        //#include ${file.bin.include}
        //#endinclude
    };

    final static byte KEY_UP     = 0;
    final static byte KEY_DOWN   = 1;
    final static byte KEY_LEFT   = 2;
    final static byte KEY_RIGHT  = 3;
    final static byte KEY_FIRE   = 4;
    final static byte KEY_SELECT = 5;
    final static byte KEY_CANCEL = 6;
    final static byte KEY_NUM_0  = 7;
    final static byte KEY_NUM_1  = 8;
    final static byte KEY_NUM_2  = 9;
    final static byte KEY_NUM_3  = 10;
    final static byte KEY_NUM_4  = 11;
    final static byte KEY_NUM_5  = 12;
    final static byte KEY_NUM_6  = 13;
    final static byte KEY_NUM_7  = 14;
    final static byte KEY_NUM_8  = 15;
    final static byte KEY_NUM_9  = 16; 
    final static byte KEY_MENU   = 17;
    final static byte KEY_POUND  = 18;

    final static byte CONTROL_POWER_UP   = 0;
    final static byte CONTROL_TURN_LEFT  = 1;
    final static byte CONTROL_TURN_RIGHT = 2;
    final static byte CONTROL_UP_LEFT    = 3;
    final static byte CONTROL_UP_RIGHT   = 4;
    final static byte CONTROL_BRAKE      = 5;
    final static byte CONTROL_USE_ITEM   = 6;
    final static byte CONTROL_COUNT      = 7;

    //#include ${file.src.include.keys}
    //#endinclude

    final byte[] KEY_NAMES = {
                                STR_KEY_UP,
                                STR_KEY_DOWN,
                                STR_KEY_LEFT,
                                STR_KEY_RIGHT,
                                STR_KEY_FIRE,
                                STR_KEY_SOFT1,
                                STR_KEY_SOFT2,
                                STR_KEY_0,
                                STR_KEY_1,
                                STR_KEY_2,
                                STR_KEY_3,
                                STR_KEY_4,
                                STR_KEY_5,
                                STR_KEY_6,
                                STR_KEY_7,
                                STR_KEY_8,
                                STR_KEY_9,
                                STR_KEY_PLUS,
                                STR_KEY_POUND,
                             };
   final static long CHEAT_KILL_NPC = ((50L & 0x000000FF) << 56) |  // 2
                                      ((53L & 0x000000FF) << 48) |  // 5
                                      ((56L & 0x000000FF) << 40) |  // 8
                                      ((52L & 0x000000FF) << 32) |  // 4
                                      ((53 & 0x000000FF) << 24) |   // 5
                                      ((54 & 0x000000FF) << 16) |   // 6
                                      ((49 & 0x000000FF) << 8) |    // 1
                                       (35 & 0x000000FF);           // #

   final static int CHEAT_ALL_LEVELS = ((51 & 0x000000FF) << 24) |  // 3
                                       ((54 & 0x000000FF) << 16) |  // 6
                                       ((57 & 0x000000FF) << 8) |   // 9
                                        (35 & 0x000000FF);          // #

   final static int CHEAT_SHIELD = ((35 & 0x000000FF) << 24) |      // #
                                   ((57 & 0x000000FF) << 16) |      // 9
                                   ((55 & 0x000000FF) << 8) |       // 7
                                    (49 & 0x000000FF);              // 1

   final static int CHEAT_NITRO = ((35 & 0x000000FF) << 24) |       // #
                                  ((57 & 0x000000FF) << 16) |       // 9
                                  ((55 & 0x000000FF) << 8) |        // 7
                                   (50 & 0x000000FF);               // 2

   final static int CHEAT_MISSILES = ((25 & 0x000000FF) << 24) |    // #
                                     ((57 & 0x000000FF) << 16) |    // 9
                                     ((55 & 0x000000FF) << 8) |     // 7
                                      (51 & 0x000000FF);            // 3

   final static int CHEAT_BOMBS = ((35 & 0x000000FF) << 24) |       // #
                                  ((57 & 0x000000FF) << 16) |       // 9
                                  ((55 & 0x000000FF) << 8) |        // 7
                                   (52 & 0x000000FF);               // 4

   final static int CHEAT_MINES = ((35 & 0x000000FF) << 24) |       // #
                                  ((57 & 0x000000FF) << 16) |       // 9
                                  ((55 & 0x000000FF) << 8) |        // 7
                                   (52 & 0x000000FF);               // 5


   final static long FP_10 = GameScreen.fpDiv(GameScreen.fpToFP(1), GameScreen.fpToFP(10)) + 1;
   final static long FP_60 = GameScreen.fpDiv(GameScreen.fpToFP(1), GameScreen.fpToFP(60)) + 1;
   final static long FP_1000 = GameScreen.fpDiv(GameScreen.fpToFP(1), GameScreen.fpToFP(1000)) + 1;
}
